/*
 * ActivityModel.h
 *
 *  Created on: 19 Aug 2011
 *      Author: Allan
 */

#ifndef ACTIVITYMODEL_H_
#define ACTIVITYMODEL_H_

// C++ includes
#include <functional>
using namespace std;

// Eigen includes
#include <Eigen/Core>
using namespace Eigen;

typedef std::function<const double (double T, double P, const VectorXd& n)> ActivityCoefficient;

class Activity
{
public:
	virtual ~Activity() {}
	
	virtual const VectorXd
	ActivityCoefficients(double T, double P, const VectorXd& n) const = 0;
	
	virtual const VectorXd
	Activities(double T, double P, const VectorXd& n) const = 0;
};

#endif /* ACTIVITYMODEL_H_ */
